//引入第三方包 express
var express = require('express');

//实例化express
var app = express()

//设置静态资源
//app.use() 注册中间件
//express.static() express内置的一个静态资源托管的中间件
app.use( express.static('static') );

//在所有接口前设置 处理post请求参数的中间件
app.use( express.json() );
app.use( express.urlencoded({extended:false}) );

//数据
var arr = [
    { email:'2370863153@qq.com',name:'典韦',phone:'17339864867',pass:'1234',ingroup:'王者组',isadmin:true,status:true },
    { email:'947305539@.qq.com',name:'李信',phone:'17339869952',pass:'1234',ingroup:'青铜组',isadmin:false,status:true },
    { email:'204337788@qq.com',name:'李元芳',phone:'17339860154',pass:'1234',ingroup:'白银组',isadmin:false,status:false },
    { email:'204332288@qq.com',name:'赵云',phone:'17339862154',pass:'1234',ingroup:'黄金组',isadmin:true,status:false }
]

//设置接口

//分页
app.get( '/user/list', (req,res)=>{
    //req 请求对象, 包含了和本次请求相关的所有信息( 请求地址,请求方式,携带的参数 )

    //res 响应对象, 可以借助res向客户端返回信息( 字符串, json格式数据, 网页 )

    //获取get类型请求的参数: req.query 
    var {page,count} = req.query;

  
    var newarr = arr.slice( (page-1)*count, page*count );
    //返回数据
    res.send( { code:200, msg:'请求成功!',list: newarr } );

} )

//模糊搜索
app.get( '/user/search', (req,res)=>{
    //接收参数
    var { searchkey } = req.query;
    //根据参数,从用户的name属性中过滤
    var newarr = arr.filter((item)=>{
      
        return  new RegExp(searchkey).test( item.name ) 
    })
    //返回数据
    res.send({ code:200,msg:'查询成功!',list:newarr })
})

//登陆
app.post( '/user/login', (req,res)=>{
    
    //想要接收post类型请求的参数 必须提前设置能解析post请求参数的中间件 express.json 和 express.urlencoded 
    var {phone,pass} = req.body;

    //用来自客户端的数据 做判断, 判断是否在服务端的用户列表中
    var i = arr.findIndex((item,index)=>{
        return item.phone == phone && item.pass == pass;
    })

    //如果i不是-1, 说明来自客户端的数据是合法的.
    if( i != -1 ){
        //登陆成功时, 可以一并返回 登陆成功的用户信息,登陆令牌
        res.send( {code:200, msg:'登陆成功!',userinfo: arr[i], token:'' } );
    }else{
        res.send( {code:400, msg:'登陆失败!'} );
    }
} )

// app.put()

// app.delete()

//设置监听
app.listen(8080,()=>{
    console.log('服务端运行在: http://localhost:8080');
})



